/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.dealer.entity;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 串号信息Entity
 * @author jyangye
 * @version 2018-01-18
 */
public class ViDeaWarehousesn extends DataEntity<ViDeaWarehousesn> {
	
	private static final long serialVersionUID = 1L;
	private String waresId;		// 商品信息ID
	private String warehouseId;		// 仓库ID
	private String snNumber;		// 串号
	private String snState;		// 串号状态
	private Date inwarehouseDate;		// 入库日期
	private String exchangeSourceWarehouseId;		// 换货源仓库ID
	private String exchangeSourceState;		// 换货源状态
	private String exchangeSourcesnId;		// 换货源串号ID
	private Date lastChangeDate;		// 最后改变日期
	private String changeOrderType;		// 改变单据类型
	private String changeOrderId;		// 改变单据ID
	private String contractMachineKind;		// 合约机类型
	private String isModelMachine;		// 是否样机
	private String agentCode;		// 所属代理编码
	private String dispatchImeiId;		// 调换信息ID
	private String electronicCardId;		// 电子保卡编号
	private String isBadMachine;		// 是否坏机
	private Date beginLastChangeDate;		// 开始 最后改变日期
	private Date endLastChangeDate;		// 结束 最后改变日期

    private VivoWares wares;
    private VivoWarehouse warehouse;

	
	public ViDeaWarehousesn() {
		super();
	}

	public ViDeaWarehousesn(String id){
		super(id);
	}

	@Length(min=0, max=11, message="商品信息ID长度必须介于 0 和 11 之间")
	@ExcelField(title="商品信息ID", align=2, sort=20)
	public String getWaresId() {
		return waresId;
	}

	public void setWaresId(String waresId) {
		this.waresId = waresId;
	}
	
	@Length(min=0, max=11, message="仓库ID长度必须介于 0 和 11 之间")
	@ExcelField(title="仓库ID", align=2, sort=30)
	public String getWarehouseId() {
		return warehouseId;
	}

	public void setWarehouseId(String warehouseId) {
		this.warehouseId = warehouseId;
	}
	
	@Length(min=1, max=30, message="串号长度必须介于 1 和 30 之间")
	@ExcelField(title="串号", align=2, sort=40)
	public String getSnNumber() {
		return snNumber;
	}

	public void setSnNumber(String snNumber) {
		this.snNumber = snNumber;
	}
	
	@Length(min=1, max=6, message="串号状态长度必须介于 1 和 6 之间")
	@ExcelField(title="串号状态", align=2, sort=50)
	public String getSnState() {
		return snState;
	}

	public void setSnState(String snState) {
		this.snState = snState;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="入库日期", align=2, sort=60)
	public Date getInwarehouseDate() {
		return inwarehouseDate;
	}

	public void setInwarehouseDate(Date inwarehouseDate) {
		this.inwarehouseDate = inwarehouseDate;
	}
	
	@Length(min=0, max=11, message="换货源仓库ID长度必须介于 0 和 11 之间")
	@ExcelField(title="换货源仓库ID", align=2, sort=70)
	public String getExchangeSourceWarehouseId() {
		return exchangeSourceWarehouseId;
	}

	public void setExchangeSourceWarehouseId(String exchangeSourceWarehouseId) {
		this.exchangeSourceWarehouseId = exchangeSourceWarehouseId;
	}
	
	@Length(min=0, max=6, message="换货源状态长度必须介于 0 和 6 之间")
	@ExcelField(title="换货源状态", align=2, sort=80)
	public String getExchangeSourceState() {
		return exchangeSourceState;
	}

	public void setExchangeSourceState(String exchangeSourceState) {
		this.exchangeSourceState = exchangeSourceState;
	}
	
	@Length(min=0, max=32, message="换货源串号ID长度必须介于 0 和 32 之间")
	@ExcelField(title="换货源串号ID", align=2, sort=90)
	public String getExchangeSourcesnId() {
		return exchangeSourcesnId;
	}

	public void setExchangeSourcesnId(String exchangeSourcesnId) {
		this.exchangeSourcesnId = exchangeSourcesnId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="最后改变日期", align=2, sort=100)
	public Date getLastChangeDate() {
		return lastChangeDate;
	}

	public void setLastChangeDate(Date lastChangeDate) {
		this.lastChangeDate = lastChangeDate;
	}
	
	@Length(min=0, max=50, message="改变单据类型长度必须介于 0 和 50 之间")
	@ExcelField(title="改变单据类型", align=2, sort=110)
	public String getChangeOrderType() {
		return changeOrderType;
	}

	public void setChangeOrderType(String changeOrderType) {
		this.changeOrderType = changeOrderType;
	}
	
	@Length(min=0, max=32, message="改变单据ID长度必须介于 0 和 32 之间")
	@ExcelField(title="改变单据ID", align=2, sort=120)
	public String getChangeOrderId() {
		return changeOrderId;
	}

	public void setChangeOrderId(String changeOrderId) {
		this.changeOrderId = changeOrderId;
	}
	
	@Length(min=0, max=10, message="合约机类型长度必须介于 0 和 10 之间")
	@ExcelField(title="合约机类型", align=2, sort=130)
	public String getContractMachineKind() {
		return contractMachineKind;
	}

	public void setContractMachineKind(String contractMachineKind) {
		this.contractMachineKind = contractMachineKind;
	}
	
	@Length(min=0, max=1, message="是否样机长度必须介于 0 和 1 之间")
	@ExcelField(title="是否样机", align=2, sort=140)
	public String getIsModelMachine() {
		return isModelMachine;
	}

	public void setIsModelMachine(String isModelMachine) {
		this.isModelMachine = isModelMachine;
	}
	
	@Length(min=0, max=10, message="所属代理编码长度必须介于 0 和 10 之间")
	@ExcelField(title="所属代理编码", align=2, sort=150)
	public String getAgentCode() {
		return agentCode;
	}

	public void setAgentCode(String agentCode) {
		this.agentCode = agentCode;
	}
	
	@Length(min=0, max=32, message="调换信息ID长度必须介于 0 和 32 之间")
	@ExcelField(title="调换信息ID", align=2, sort=160)
	public String getDispatchImeiId() {
		return dispatchImeiId;
	}

	public void setDispatchImeiId(String dispatchImeiId) {
		this.dispatchImeiId = dispatchImeiId;
	}
	
	@Length(min=0, max=32, message="电子保卡编号长度必须介于 0 和 32 之间")
	@ExcelField(title="电子保卡编号", align=2, sort=170)
	public String getElectronicCardId() {
		return electronicCardId;
	}

	public void setElectronicCardId(String electronicCardId) {
		this.electronicCardId = electronicCardId;
	}
	
	@Length(min=0, max=1, message="是否坏机长度必须介于 0 和 1 之间")
	@ExcelField(title="是否坏机", align=2, sort=180)
	public String getIsBadMachine() {
		return isBadMachine;
	}

	public void setIsBadMachine(String isBadMachine) {
		this.isBadMachine = isBadMachine;
	}
	
	public Date getBeginLastChangeDate() {
		return beginLastChangeDate;
	}

	public void setBeginLastChangeDate(Date beginLastChangeDate) {
		this.beginLastChangeDate = beginLastChangeDate;
	}
	
	public Date getEndLastChangeDate() {
		return endLastChangeDate;
	}

	public void setEndLastChangeDate(Date endLastChangeDate) {
		this.endLastChangeDate = endLastChangeDate;
	}


    public VivoWares getWares() {
        return wares;
    }

    public void setWares(VivoWares wares) {
        this.wares = wares;
    }

    public VivoWarehouse getWarehouse() {
        return warehouse;
    }

    public void setWarehouse(VivoWarehouse warehouse) {
        this.warehouse = warehouse;
    }
}